import { getToken, setToken, removeToken, setTime } from '@/utils/auth'
// 导入user接口
import { loginApi, getUserInfo, getSysUserInfo } from '@/api/user'
const state = {
  token: getToken() || '',
  userInfo: {}
}
const mutations = {
  // 保存用户信息
  saveUserInfo(state, userInfo) {
    state.userInfo = userInfo
  },
  // 删除用户信息
  removeUserInfo() {
    state.userInfo = {}
  },
  // 保存token
  saveToken(state, token) {
    state.token = token
    setToken(state.token)
    setTime()
  },
  // 删除token
  removeToken() {
    state.token = ''
    removeToken()
  }
}
const actions = {
  // 登录方法
  async login({ commit }, data) {
    // 调用登录接口
    const res = await loginApi(data)
    // 保存token的状态
    commit('saveToken', res)
  },
  // 退出登录
  logout({ commit }) {
    // 删除用户信息
    commit('removeUserInfo')
    // 删除token
    commit('removeToken')
  },
  // 获取用户信息
  async getUserInfo({ commit }) {
    // 调用获取用户信息的接口
    const res = await getUserInfo()
    const res1 = await getSysUserInfo(res.userId)
    const userInfo = { ...res, ...res1 }
    // 保存用户信息
    console.log(userInfo)
    commit('saveUserInfo', userInfo)
    console.log(res)
    // 返回用户信息，后面有用
    return res
  }
}
export default {
  namespaced: true,
  state,
  mutations,
  actions
}

